<?php

/**
 * usuario actions.
 *
 * @package    dentist
 * @subpackage usuario
 * @author     Your name here
 */
class usuarioActions extends sfActions {

    public function executeIndex(sfWebRequest $request) {
        $this->Usuarios = UsuarioPeer::doSelect(new Criteria());
    }

    public function executeShow(sfWebRequest $request) {
        $this->Usuario = UsuarioPeer::retrieveByPk($request->getParameter('id'));
        $this->forward404Unless($this->Usuario);
    }

    public function executeNew(sfWebRequest $request) {
        $this->form = new UsuarioForm();
    }

    public function executeCreate(sfWebRequest $request) {
        $this->forward404Unless($request->isMethod(sfRequest::POST));

        $this->form = new UsuarioForm();

        //$this->processFormRegistro($request, $this->form);
        $this->processForm($request, $this->form);

        $this->setTemplate('new');
    }

    public function executeEdit(sfWebRequest $request) {
        $this->forward404Unless($Usuario = UsuarioPeer::retrieveByPk($request->getParameter('id')), sprintf('Object Usuario does not exist (%s).', $request->getParameter('id')));
        $this->form = new UsuarioForm($Usuario);
    }

    public function executeUpdate(sfWebRequest $request) {
        $this->forward404Unless($request->isMethod(sfRequest::POST) || $request->isMethod(sfRequest::PUT));
        $this->forward404Unless($Usuario = UsuarioPeer::retrieveByPk($request->getParameter('id')), sprintf('Object Usuario does not exist (%s).', $request->getParameter('id')));
        $this->form = new UsuarioForm($Usuario);

        $this->processForm($request, $this->form);

        $this->setTemplate('edit');
    }

    public function executeDelete(sfWebRequest $request) {
        $request->checkCSRFProtection();

        $this->forward404Unless($Usuario = UsuarioPeer::retrieveByPk($request->getParameter('id')), sprintf('Object Usuario does not exist (%s).', $request->getParameter('id')));
        $Usuario->delete();

        $this->redirect('usuario/index');
    }

    protected function processForm(sfWebRequest $request, sfForm $form) {
        $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
        if ($form->isValid()) {
            $valores = $this->form->getValues();

            // se busca el usuario en la base para ver si ya existe
            if (UsuarioPeer::getUsuario($valores['correo']) == null) {

                $Usuario = new Usuario();
                $Usuario->setNombre($valores['nombre']);
                $Usuario->setApellido($valores['apellido']);
                $Usuario->setDireccion($valores['direccion']);
                $Usuario->setTelefono($valores['telefono']);
                $Usuario->setCorreo($valores['correo']);
                $Usuario->setClave(md5($valores['clave']));
                $Usuario->save();

                //acá hay que ver que hago si lo mando al index, home o donde mierda!
                $this->redirect('sesion/login');
            } else {
                $this->getUser()->setFlash("error", "El correo que ingresó ya existen en el sistema, por favor ingrese otro.");
            }
        }
    }

}
